Introduction to Operating Systems
운영체제
하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 하드웨어하고 어떻게 인터페이스 해야하는 건가
- 사용자, 프로그램들과 어떻게 인터페이스 할 것 인가
컴퓨터 시스템의 자원을 효율적으로 관리
→ 자원 : 프로세서, 기억장치, 입출력 장치 등
ex) 실행 중인 프로그램들에게 짧은 시간씩 CPU를 번갈아 할당
실행중인 프로그램들 메모리 공간을 적절히 분배
협의의 운영체제(커널)
- 운영체제 핵심 부분
- 부팅 후 메모리에 상주
광의의 운영체제
- 커널 + 주변 시스템 유틸리티 포함해서 말함
운영체제 목적
- 컴퓨터 시스템의 자원을 효율적으로 관리
효율성
,형평성
- 사용자간의 형평성 있는 자원 분배
- 주어진 자원으로 최대한의 성능을 내기
- 하드웨어 자원 뿐만 아니라 소프트웨어 자원도 관리
- 사용자 및 운영체제 자신의 보호
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
운영체제의 분류
1. 동시 작업 가능 여부
- 단일 작업
- 한번에 하나의 작업만 처리
- ex) MS-DOS
- 다중 작업
- 동시에 두개 이상의 작업 처리
- ex) 대부분 현재의 운영체제들
2. 사용자의 수
- 단일 사용자
- ex) MS-DOS, MS Windows
- 다중 사용자
- 동시에 접속해서 쓸 수 있음
- ex) unix, NT server
3. 처리 방식
- 일괄처리(batch processing)
- 작업 모아서 한꺼번에 처리
- 시분할(time sharing)
- 작은 시간 단위로 나누어서 여러 작업 수행
- 일괄 처리 시스템에 비해 응답 빠름
- interactive 한 방식
- 실시간(realtime OS)
- 데드라인이 있어서 정해진 시간안에 결과 나오는 것을 보장함
- 특수한 목적을 가진 시스템에서 사용 ex) 원자로/공장 제어, 미사일 제어 등
- 데드라인에 대한 유연성에 따라서 hard,soft 나누기도 함
multitasking
: 하나의 프로그램이 끝나기 전에 다른 task를 실행 가능multiprogramming
: 메모리에 여러 프로그램 동시에 올라감. 메모리를 강조한 느낌time sharing
: CPU를 강조한 느낌multiprocess
: 비슷한 것 같음multiprocessor
: CPU가 여러개 있는 것을 의미함. 하드웨어 적으로 다른 시스템
운영체제의 예
- 유닉스
- 대부분 c로 작성되어 있어서 이식성이 높음
- 커널 크기 최소한으로 함
- 소스 코드 공개
- dos
- ms windows
- GUI 가지고 있음
별로 의미 없어 보임
운영체제의 구조
- cpu 스케줄링
- 메모리 관리
- 파일 관리
- 입출력 관리
- interrupt : I/O 장치가 cpu에게 요청함
- 프로세스 관리
- 그외
- 보호시스템
- 네트워킹